I wrote this code to send messages to everyone on the server.
The text isn't appearing in a button though, but as a Race Control Message.
<?php
CatchEvent OnMSO( $userName, $text ) # Player event
$idxOfFirtsSpace = indexOf( $text, " ");
IF( $idxOfFirtsSpace == -1 ) THEN
$command = $text;
$argv = "";
ELSE
$command = subStr( $text,0,$idxOfFirtsSpace );
$argv = trim( subStr( $text,$idxOfFirtsSpace ) );
ENDIF
SWITCH( $command )
CASE "!msg":
IF( UserInGroup( "admin", $userName ) == 1 )
THEN
openPrivButton( "send_msg",52,0,48,5,5,-1,32,"^3Click to resend message: %nl%" .GetCurrentPlayerVar ("message"),rcm_msg );
openPrivButton( "write_send_msg_bg",100,0,48,10,5,-1,32,"" );
openPrivTextButton( "write_send_msg",100,5,48,5,5,0,"^3Write message and click OK (max. 50 characters)","^2Click to type and send a message",50,rcm_written_msg );
openPrivButton( "close_msg",148,0,10,10,5,-1,32,"^1X",close_msg );
ELSE
privMsg( "^1You are not allowed to open that");
ENDIF
BREAK;
ENDSWITCH
EndCatchEvent
Sub rcm_written_msg ( $KeyFlags , $message )
SetCurrentPlayerVar ("message", "^2".$message);
cmdLFS ( "/rcm ^2" . $message );
cmdLFS ( "/rcm_all" );
openPrivButton( "send_msg",52,0,48,5,5,-1,32,"^3Resend message: %nl%^8" .GetCurrentPlayerVar ("message"),rcm_msg );
EndSub
Sub rcm_msg ( $KeyFlags , $argv )
cmdLFS ( "/rcm ^2" . GetCurrentPlayerVar ( "message" ) );
cmdLFS ( "/rcm_all" );
EndSub
Sub close_msg ( $KeyFlags , $argv )
closePrivButton ( "send_msg&write_send_msg_bg&write_send_msg&close_msg" );
EndSub
?>